import { topMessage } from '@/components/TopMessage/data'

/**
 * 检测更新
 */
const checkUpdate = () => {
  // #ifdef MP
  if (!uni.canIUse('getUpdateManager')) return

  const updateManager = uni.getUpdateManager()

  // 检查是否存在新版本,
  updateManager.onCheckForUpdate(res => {
    if (!res.hasUpdate) return

    // 新的版本下载失败
    updateManager.onUpdateFailed(() => {
      topMessage.info('新版本已经上线啦！\n请您删除当前小程序并重新搜索打开体验', true, 10000)
    })
  })

  // 请求完新版本信息的回调
  updateManager.onUpdateReady(() => {
    // if (!checkDayByKey('check_update_time')) return

    // uni.showModal({
    //   title: '更新提示',
    //   content: '新版本已经准备好，是否重启？',
    //   success(res) {
    //     if (!res.confirm) return

    //     // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
    //     updateManager.applyUpdate()
    //   },
    // })

    // 静默更新
    updateManager.applyUpdate()
  })
  // #endif

  // #ifdef APP
  // topMessage.info('注意！\n这是一个用于测试热更新的\n早期测试包', true, 1000000)

  // if (!checkDayByKey('check_update_time')) return

  // plus.runtime.getProperty(plus.runtime.appid!, async widgetInfo => {
  //   const config = await getJSON(server.srcServer + 'app/config.json')
  //   const target = config[plus.os.name === 'iOS' ? 'ios' : 'android']

  //   // 无需更新
  //   if (target.version === widgetInfo.version) return

  //   // const confirm = await new Promise(resolve => {
  //   //   uni.showModal({
  //   //     title: '新版本提示',
  //   //     content: '点击确认立即更新应用',
  //   //     success: res => resolve(res.confirm),
  //   //   })
  //   // })

  //   // if (!confirm) return

  //   loading(true)

  //   uni.downloadFile({
  //     url: server.srcServer + 'app/' + target.package,
  //     success(res) {
  //       // 下载失败
  //       if (res.statusCode !== 200) {
  //         console.error(res)
  //         // topMessage.error('下载失败')
  //         return
  //       }

  //       plus.runtime.install(
  //         res.tempFilePath,
  //         { force: false }, // 是否对比版本
  //         () => plus.runtime.restart(),
  //         err => {
  //           console.error(err)
  //           // topMessage.error('安装失败')
  //         },
  //       )
  //     },
  //     fail(err) {
  //       console.error(err)
  //       // topMessage.error('下载失败')
  //     },
  //     complete() {
  //       loading(false)
  //     },
  //   })
  // })
  // #endif
}

export { checkUpdate }
